namespace WeatherMcpServer.Data.Entities;

/// <summary>
/// 天气类型枚举，用于区分不同的天气事件类型（与预警规则、预警记录关联）。
/// </summary>
public enum WeatherType
{
    /// <summary>未知或未分类类型</summary>
    Unknown = 0,
    /// <summary>高温（如 >= 35℃）</summary>
    HighTemperature = 1,
    /// <summary>低温（如 <= 0℃）</summary>
    LowTemperature = 2,
    /// <summary>暴雨</summary>
    HeavyRain = 3,
    /// <summary>强对流/雷暴大风等</summary>
    Storm = 4,
    /// <summary>降雪</summary>
    Snow = 5,
    /// <summary>大风</summary>
    Wind = 6,
    /// <summary>大雾/浓雾</summary>
    Fog = 7,
}

/// <summary>
/// 预警严重等级，结合业务用于通知与处置分级。
/// </summary>
public enum AlertSeverity
{
    Info = 0,
    Minor = 1,
    Moderate = 2,
    Major = 3,
    Critical = 4,
}

/// <summary>
/// 预警处理状态流转。
/// </summary>
public enum AlertStatus
{
    /// <summary>新生成待处理</summary>
    New = 0,
    /// <summary>已确认（已知晓）</summary>
    Acknowledged = 1,
    /// <summary>已处理/已解除</summary>
    Resolved = 2,
    /// <summary>被抑制（规则或策略）</summary>
    Suppressed = 3,
}

/// <summary>
/// 规则条件类型（阈值比较方式）。
/// </summary>
public enum RuleConditionType
{
    /// <summary>>= 阈值1</summary>
    GreaterOrEqual = 0,
    /// <summary><= 阈值1</summary>
    LessOrEqual = 1,
    /// <summary>介于阈值1与阈值2之间（含边界）</summary>
    Between = 2,
    /// <summary>等于阈值1</summary>
    Equal = 3,
}

/// <summary>
/// 预警动作类型（用于记录触发后采取的动作）。
/// </summary>
public enum AlertActionType
{
    /// <summary>发送通知</summary>
    Notify = 0,
    /// <summary>抑制/不再通知</summary>
    Suppress = 1,
    /// <summary>升级上报</summary>
    Escalate = 2,
}

/// <summary>
/// 通知渠道类型。
/// </summary>
public enum AlertActionChannel
{
    /// <summary>系统内 UI 提示/弹窗</summary>
    Ui = 0,
    /// <summary>电子邮件</summary>
    Email = 1,
    /// <summary>短信</summary>
    Sms = 2,
    /// <summary>Webhook 回调</summary>
    Webhook = 3,
}
